/*
*********************************************************************************************************
*
* 文件说明:    工具函数
* 软件模块:    utility.c
* 版本  :    V1.0
* 描  述 :    一些常用的C语言工具函数，用于对常见任务的封装
*
* 版本更新记录 :
*   版本   修改时间        修改人      描述
*   V1.0   2025-5-14       Miaozi    初始版本
* 
*
*********************************************************************************************************
*/
#include "utility.h"


/**
 * @brief 将格式化内容写入缓冲区
 * 
 * @param buf  目标缓冲区指针
 * @param size 缓冲区大小（字节）
 * @param fmt  格式化字符串（pru16f风格）
 * @param ...  可变参数
 * @return 实际写入长度（成功），或 -1（出错/溢出）
 */
u16 UTIL_PrintfToBuf(u8 *buf, u16 size, const u8 *fmt, ...)
{
  // 输入参数校验：缓冲区非空，大小合理，格式串有效
  if (buf == NULL || size <= 0 || fmt == NULL)
      return 0;

  va_list args;             // 可变参数处理
  va_start(args, fmt);      // 初始化args读取...
  s16 len = vsnprintf((char *)buf, size,(const char *)fmt, args);  // 写入格式化内容到buf
  va_end(args);             // 清理va_list

//  //  拼接\r\n结尾
//  strcat((char *)buf,"\r\n");  
//  len+=2;
  
  //  检查返回长度
  if (len < 0 || len >= size)
      return 0;

  // 返回实际写入长度
  return len;
}
/***************************** LiteBsp by Miaozi (END OF FILE) *********************************/
